N, l1, r1, l2, r2 = map(int, input().split())
lis = [*map(int, input().split())]
lis1 = sorted(lis[l1 - 1:r1]) # lis1是从l1到r1排序的结果
lis1.extend(lis[r1:]) # 让它继承剩下的，组成完整的结果
lis2 = list(reversed(sorted(lis1[l2 - 1:r2]))) # lis2再对lis1的l2到r2进行逆向排序
for i in lis1[:l2 - 1]: # 输出lis2排序部分左边的数字
    print(i, end=" ")
for i in lis2: # 输出lis2的数字
    print(i, end=" ")
for i in lis1[r2:]: # 输出lis2排序部分右边的数字
    print(i, end=" ")
# -------------------------------------------------------------------------------

# 比赛环境为python3.8.6版本自带的IDLE，最好早点熟悉一下。。这个东西的提示时有时无

# 菜单栏最右边的Help的Python Docs 比赛时候也可以看，不过建议还是提前多了解了解，

# 比赛的时候至少知道在文档找什么能用的上。

# IDLE是下载Python时自带的，在按住win+s搜索IDLE就能搜到了。

# 然后点左上角的File可以创建新文件，然后按F5可以运行。
